package ar.uba.fi.celdas7568.ciudad;

import ar.uba.fi.celdas7568.ciudad.heuristicas.Heuristica;

public class SimularAgentesMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		if (args.length < 2) {
			System.out.println("Error: debe indicar los xml para la ciudad y personalidad");
			return;
		}
		
		String archivoCiudad = args[0];
		String archivoPersonalidad = args[1];
		
		Ciudad ciudad = new Ciudad(archivoCiudad);
		
		for (Zona zona : ciudad) {
			System.out.println(zona);
		}
		System.out.println("//////////////////////////////////////////////////////////////////////////////////////////");
		Personalidad personalidad = new Personalidad(archivoPersonalidad);
		Personalidad personalidadInicial = new Personalidad(archivoPersonalidad);
		
		System.out.println(personalidad);
		System.out.println("//////////////////////////////////////////////////////////////////////////////////////////");
		Agente agente = new Agente();
		
		agente.setHeuristicaDeDecision(new Heuristica());
		agente.setPersonalidad(personalidad);
		
		Zona zonaElegida = agente.elegirZona(ciudad);
				
		System.out.println("Zona elegida: " + System.getProperty("line.separator") + zonaElegida);
		System.out.println("//////////////////////////////////////////////////////////////////////////////////////////");
		System.out.println("Personalidad luego de la elección: " + System.getProperty("line.separator") + agente.getPersonalidad());
		System.out.println("//////////////////////////////////////////////////////////////////////////////////////////");	
		System.out.println("Reporte final por caracteristica de : Zona elejida, personalidad inicial y personalidad modificada");
		Personalidad.reporteResultados(zonaElegida,  agente.getPersonalidad(),personalidadInicial);
	}

}
